package com.atguigu.school.service;

import com.atguigu.school.commons.Page;
import com.atguigu.school.pojo.Clazz;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 处理班级相关业务
 *
 * @author 刘逸晖
 */
public interface ClazzService {

    /**
     * 新增或更新班级
     * 没有提供 id 就是新增，否则就是更新
     *
     * @param clazz 班级信息
     */
    void saveOrUpdateClazz(Clazz clazz);

    /**
     * 根据 id 批量删除班级
     *
     * @param ids 预删除班级的 id 列表
     */
    void deleteClazzByIds(List<Integer> ids);

    /**
     * 根据名称和所属年级的名称查询班级
     *
     * @param name      班级名称，可以不完整，可为空
     * @param gradeName 年级名称，可以不完整，可为空
     * @param current   当前页，从 1 开始
     * @param 个数
     * @return 班级列表
     */
    Page<Clazz> selectClazzByNameAndGradeName(String name, String gradeName, Integer current, Integer size);

    /**
     * 查询所有班级
     *
     * @return 所有班级
     */
    List<Clazz> selectClazz();

}
